無題 投稿者:変 投稿日:2020/03/28(土) 23:08 No.1537
はじめまして
パーフェクトダーク研究希望で項目を追加した者です
ややこしいかと思ったので一応補足させて下さい
> スケダーキングの武器をジョアンナが使ったら不発弾になる理由
これですが
正確には「ミッション9 スケダーの神殿 決戦」のボスが持ってる武器です
ボスが降りてきている時にチートでシールドを剥がしてから倒すとドロップします
スタートメニューの武器リストにはRランチャと表示されますが拾った時は文字無しの[]が出ます
不思議と不発弾を弾として拾う事もできるので武器データがどういう状態になってるのかできれば知りたいです
Rランチャ(不発)としてコンバットで使用できたらネタになるかなと
こちらの環境ではソロミッションで
00536460が蓄積量 (初期値 0)
00536464が致死量 (初期値 00 00 80 40)
005364E0がシールド (初期値 00 00 48 42)
でした
おまけとして
00536468を C0 AC 07 80 にすれば協力ミッションの味方みたいに隠れて
0053647Cを 00 に固定すれば行動に変化がみられません(隠れたままとか攻撃に移行しないとか)
あとは
大統領専用機 暴露で大統領に同じ事を(致死量の後ろ4byteをC0 AC 07 80に)すれば大統領も隠れますし
34 A9 07 80にすれば素手で戦ってくれます
既知ならすみません
Re: 無題 投稿者:変 投稿日:2020/03/29(日) 08:43 No.1538
環境書いてないすみません
Project64 2.3.2.202
meccのベースアドレス設定
@$1092F3D0, $00800000, 00000000
(リージョン検索タブのアドレスが5XXXXXXXの先頭です)
シールドは00 00 00 00で剥がれ00 00 00 51で
ファーサイトでも減らなくなります
致死量は00 00 00 80で無敵になります
ですがコンバットの一撃必殺では減りますし
トランキライザや殴り等の気絶系では倒れてしまいます
Re: 無題 投稿者:ジョナエル 投稿日:2020/04/14(火) 20:54 ID:kMkxqlQKk. No.1547
はじめまして!
ご連絡が遅くなってすみません。
研究希望の追加ありがとうございます。
> 不思議と不発弾を弾として拾う事もできるので武器データがどういう状態になってるのかできれば知りたいです
これは面白そうですね。ちょっと調べてみようと思います。
ハックロムツールの「PD Editor」とか駆使すると色々と情報がわかるので、それらも合わせると面白いことがわかるかもしれません。
改造コードですかね?の情報もありがとうございます!
HPの仕組みについては、過去に調べたこともありました。
http://pdlabo.knowhow.jp/ken/research.php?rno=19
シールド関連の動きや、一撃必殺ルールなども細かく調べてみると面白そうですね。
Re: 無題 投稿者:変 投稿日:2020/04/18(土) 12:00 No.1674
HPの仕組み参考になりました
ありがとうございます
副産物として気付いた事がいくつかあります
NPCのHPのアドレスからのオフセット サイズ
00000000 4byte HP
00000004 4byte 致死量
00000008 8byte NPCの種類?
0000001C 2byte 行動変移?
00000080 4byte シールド
000001DA 2byte めまい(殴られた時のグラグラ度)
000001FC 1byte 体勢?状態?
00000200 1byte 1回殴られただけで気絶するかどうか?
致死量
値を 00 00 00 80 にすれば気絶以外では倒れなくなります
コンバットの一撃必殺でも死ななくなります
NPCの種類?
1, 協力ミッションの大統領専用機[暴露]で味方シミュラントの値を 6C FF 51 80 FF FF BA 00 にすれば
味方シミュラントが大統領のように脱出ポッドに向かって到着すれば任務完了になりました
2, 同ミッションで大統領の値を C0 AC 07 80 に固定すれば(後ろ4byteはそのままでも)大統領も隠れて
一定時間後に出現してからは味方シミュラントのボクサーのような動きになりました
行動変移?
ここの値を 00 00 で大統領が隠れた状態で固定すれば隠れたままになったり
キングスケダーが攻撃してこないタイミングなら攻撃してこなくなります
シールド
値を 00 00 00 51 にすればファーサイトでも減らなくなります
キングスケダーの場合 00 00 00 00 にすれば倒して武器をドロップさせる事ができます
コンバットの一撃必殺ではシールドが剥がれてしまいます
めまい
値が 80 13 くらいを超えると気絶して
00 00 で固定すると1撃で8013くらいをオーバーしない攻撃(Nボムなど)では気絶しなくなります
体勢?状態?
01でドクターキャロルのように浮遊(NPCは大の字になる)
02でドクターキャロルのように浮遊(NPCは大の字になる, ドクターキャロルは02)
03で物理判定も含め消えます
04でエミュレータがエラーでストップします
1回殴られただけで気絶するかどうか?
大統領専用機[暴露]の大統領で確認したのですが
普通は1度殴ると気絶しますがここの値を01にすると(00以外なら何でもかも 真偽値?)
後ろ以外から殴られた場合は1度では気絶しなくなり, めまいの値で気絶するか決まるようになるみたいです
ジョアンナのシールドやめまい・体勢?状態?もNPCと同じ構造になっているようで
ジョアンナの場合mecc右下のバイナリ検索で0000000000008040(HP初期値00000000と致死量00008040)として
末尾が0か8のアドレスで後ろの方からシールドの値を変えてみたら見つかりやすいです
ベースアドレスからのオフセットで言う所の004XXXXXから005XXXXXの範囲に見つかると思います
体勢?状態?の所を3にするとムービーのジョアンナも消えます
何かのネタのお役に立ちますように
G5ビルの遊び, エレベーターから出てくるトレント, 爆風浴びて踊りすぎでしょ!w
Re: 無題 投稿者:ジョナエル 投稿日:2020/05/12(火) 23:09 ID:kMkxqlQKk. No.1834
こんにちは!
色々と情報をありがとうございます。
私も久々にMECCを使ってメモリ解析してみました。
「Project64 2.3.2.202」のベースアドレスについて検索したのですが、私の環境では以下のようです。
このアドレス設定で解析していただけるとわかりやすいかも?
(ベースアドレスが合っていると、アドレスの計算が不要で、そのまま改造コードが作れます。)
@$7C1F39D4,$800000,0
参考にしたページは、以下です。(公開停止でしたので、Internet Archive通しています。)
https://web.archive.org/web/20180419110608/http://tyakata.com/lecture_mecc_base.html
もしかしたら、環境によっては使えない場合もあるとかないとからしいので、良かったら試してみてください。
Re: 無題 投稿者:変 投稿日:2020/05/27(水) 14:01 No.1835
アーカイブありがとうございます
こちらの環境では7C1F39D4周辺はゼロで埋まっていました
試しにビデオプラグインを「Glide64 For PJ64:2.1.2.202」に変更したら上でも書いた「$@1092F3D0, $00800000, 00000000」で大丈夫でした
なのでロムを読み込んでから
A, meccでプロセスを選択し
リージョン検索タブのアドレスが5XXXXXXXのグループの先頭がベースアドレス
例
アドレス サイズ
100D7000 00001000
100D8000 00001000
545D0000 00010000
545E0000 00001000
この場合は$545D0000, $00800000, 00000000になります
もしくは
B, ビデオプラグインをGlideにした状態で求めておいて
それを読み込んでからプラグインを好きなのに変える
これでできるようになると思います
Re: 無題 投稿者:ジョナエル 投稿日:2020/05/30(土) 11:10 ID:kMkxqlQKk. No.1836
ありがとうございます!
ビデオプラグインを色々と変えてみましたが、自分の環境ではやはり以下で大丈夫でした。。
環境によって違うのかな?
> @$7C1F39D4,$900000,0
また、
> リージョン検索タブのアドレスが5XXXXXXXのグループの先頭がベースアドレス
こちらも私の場合、「5XXXXXXX」は存在していなくて以下のような感じでした。
こちらも環境によって違うのかも?
$481B1000
$481B3000
$481B8000
$481B9000
$4BDF0000
$67DF0000
■ベースアドレスが合っているかの確認
参考までに、私の場合、ベースアドレスが合っているかどうかの確認は、以下のページにて
http://pdlabo.knowhow.jp/kaizou/kaigai_jp.php
「敵動かない」コードの検索をしていて、ちょうどメモリの並びもキャプチャしていたので、それを利用して探しました。
・検索方法:入力
・検索値:8F190000
・4バイト、16進数
で検索した時に、「8F190000 00001025」の並びとなっている部分を探します。(4byte表示にする)
見つけたそのアドレスが「000022EEE0」となっていれば、ベースアドレスが合っているなと判断しています。
要は、アドレスジャンプで「22EEE0」に飛んだ時に、値の並びが「8F190000 00001025 13200008 44A0001」となっていれば、ベースアドレスは正しいです。
ベースアドレスが合っていると、アドレスからそのまま改造コードを作成できます。
上記の例では「8022EEE0 0020」になります。
先頭の「80」とかは改造コードで1バイト書込みの命令コードです。
■ベースアドレスの探し方(備忘録)
また、上記を利用すればベースアドレス探せますね。
リージョン検索で、4バイト、16進数、リトルで「8F190000」を検索します。
何件か候補が出ますが、1つずつ探して、メモリエディタでは上記と同様に
・検索方法:入力
・検索値:8F190000
・4バイト、16進数
で検索します。
一致するアドレスの並びが見つかったら、そのアドレスから改造コードのアドレスを減算します。
見つかったアドレスが、「4801EEE0」だとします。
その場合、4801EEE0 - 22EEE0 = 47DF0000 となります。
「47DF0000」がベースアドレスとなります。
(5XXXXXXX ではないので、やはり環境によって違うのでしょうか。)
ベースアドレスは環境によって変動するので、そのベースアドレスを値として格納されているアドレス(ポインタ)を探します。
リージョン検索にて、4バイト、16進数、リトルで「47DF0000」を検索します。
何件か候補が出ますので、1つずつ見て格納されているところを確認します。
私の環境の場合、アドレス「7C1E1090」行のCの列に格納されていたので
「7C1E109C」となります。
設定値としては、ポインタを示す「@」をつけて以下のようになりますね。
アドレスの範囲はちょっと足りなかったので、「$900000」に増やしました。
@$7C1F39D4,$900000,0
Re: 無題 投稿者:変 投稿日:2020/06/04(木) 14:49 No.1837
ベースアドレスを特定
→ベースアドレスが格納されてるアドレスを候補入り
→PCやエミュを再起動してズレていない所があれば候補残し
→何回か再起動と候補を絞るのを繰り返す
これで残ったのが
「Glide64 For PJ64:2.1.2.202」「@$1092F3D0, $00800000, 00000000」
なんですけど
同じやり方でもビデオプラグインをJabo'sに変えると候補が残らなくなるし
環境によるんですかねぇ